<?php

/*
 * Pagina Usuario - Muestra info del usuario.
 * @Autor: Andrés Ubilla - Inicial.cl
 */

class EditUsuario extends TPage {

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarInterfaz();
        }
    }

    private function actualizarInterfaz() {        
        $oUsuarioLogged = Util::getSession("USUARIO");
        if (!Util::isNullOrEmpty($oUsuarioLogged)) {
            $this->Page->Title = "Actualizar mis datos - Diosas del Placer";
            $this->txtUsuario->Attributes->Add("disabled", "disabled");
            $this->txtEmail->Attributes->Add("disabled", "disabled");
            $this->txtFechaNacimiento->Attributes->Add("placeholder", "Fecha nacimiento");
            $this->txtFechaNacimiento->Attributes->Add("data-date-format", "dd/mm/yyyy");
            $this->txtFechaNacimiento->Attributes->Add("required", "required");
            $this->ddlSexo->Attributes->Add("required", "required");

            $this->obtenerDatos($oUsuarioLogged);
        } else {
            $this->Response->Redirect("index.php?page=Index.Home");
        }
    }

    private function obtenerDatos($oUsuarioLogged) {
        $this->txtUsuario->Text = $oUsuarioLogged->getUsuario();
        $this->txtEmail->Text = $oUsuarioLogged->getEmail();
        $this->txtFechaNacimiento->Text = Util::fechaDateTimeANormal($oUsuarioLogged->getFechaNacimiento());
        $this->ddlSexo->SelectedValue = $oUsuarioLogged->getSexo();
        $oProfesion = DDPEntity::getProfesion($oUsuarioLogged->getIdProfesion());
        $this->ddlProfesion->SelectedValue = $oProfesion->getId();
        $oComuna = DDPEntity::getComuna($oUsuarioLogged->getIdComuna());
        $this->ddlComuna->SelectedValue = $oComuna->getId();

        $path = $this->Page->Theme->BaseUrl . "/images/avatar/";
        if (Util::isNullOrEmpty($oUsuarioLogged->getRutaAvatar())) {
            if ($oUsuarioLogged->getSexo() == 1) {
                $this->litAvatarUsuario->ImageUrl = $path . "dios.jpg";
            } else {
                $this->litAvatarUsuario->ImageUrl = $path . "diosa.jpg";
            }
            $this->lblNombreBotonSubirImagen->Text = "Subir foto";
        } else {
            $this->litAvatarUsuario->ImageUrl = $path . $oUsuarioLogged->getRutaAvatar();
            $this->lblNombreBotonSubirImagen->Text = "Cambiar foto";
        }

        $arrProfesion = DDPEntity::getListaProfesiones();
        if (count($arrProfesion) > 0) {
            $this->ddlProfesion->DataSource = $arrProfesion;
            $this->ddlProfesion->DataValueField = "id";
            $this->ddlProfesion->DataTextField = "nombre";
            $this->ddlProfesion->DataBind();
            $this->ddlProfesion->Items->insertAt(0, new TListItem("Seleccione", "0"));
        }

        $arrComunas = DDPEntity::getListaComunas();
        if (count($arrComunas) > 0) {
            $this->ddlComuna->DataSource = $arrComunas;
            $this->ddlComuna->DataValueField = "id";
            $this->ddlComuna->DataTextField = "nombre";
            $this->ddlComuna->DataBind();
            $this->ddlComuna->Items->insertAt(0, new TListItem("Seleccione", "0"));
        } else {
            $this->ddlComuna->Items->insertAt(0, new TListItem("Seleccione", "0"));
        }
        
        $this->litMensaje->Text = "<div class='mensaje span12'>
                                        <button type='button' class='close'>&times;</button>
                                        <p><i class='icon-exclamation-sign icon-white'></i> Te recomendamos completar tus datos, as&iacute; podremos ofrecerte informaci&oacute;n adecuada a tu perfil, y tendr&aacute;s m&aacute;s oportunidades en nuestras promociones y concursos.</p>
                                    </div>";
    }

    public function btnGuardarOnClick($sender, $param) {
        $oUsuarioLogged = Util::getSession("USUARIO");
        $idUsuario = $oUsuarioLogged->getId();
        $fechaNacimiento = $this->txtFechaNacimiento->Text;
        $sexo = $this->ddlSexo->SelectedValue;
        $profesion = $this->ddlProfesion->SelectedValue;
        $comuna = $this->ddlComuna->SelectedValue;
        $avatar = $this->litAvatarUsuario->ImageUrl;
        $imgUsuario = explode("/", $avatar);

        $oUsuario = new Usuario();
        $oUsuarioBLL = new UsuarioBLL();
        $oUsuario->setId($idUsuario);
        $oUsuario->setFechaNacimiento(Util::fechaNormalADateTime($fechaNacimiento));
        $oUsuario->setSexo($sexo);
        $oUsuario->setIdProfesion($profesion);
        $oUsuario->setIdComuna($comuna);
        $oUsuario->setRutaAvatar(end($imgUsuario));
        $oUsuario->setUsuario($oUsuarioLogged->getUsuario());
        $oUsuario->setEmail($oUsuarioLogged->getEmail());
        $oUsuario->setFechaLogout($oUsuarioLogged->getFechaLogout());

        $result = $oUsuarioBLL->editarPerfilPropio($oUsuario);
        if (is_int($result) && $result > 0) {
            Util::setSession("USUARIO", $oUsuario);
            $this->litMensaje->Text = "<div class='mensaje span12'>
                                        <button type='button' class='close'>&times;</button>
                                        <p><i class='icon-thumbs-up icon-white'></i> La informaci&oacute;n ha sido actualizada exitosamente.</p>
                                    </div>";
        }else{
            $this->litMensaje->Text = "<div class='mensaje span12'>
                                        <button type='button' class='close'>&times;</button>
                                        <p><i class='icon-thumbs-down icon-white'></i> Ha ocurrido un error al actualizar la informaci&oacute;n.</p>
                                    </div>";
        }
    }

    public function subirImagenUsuario($sender, $param) {
        $name = $sender->FileName;
        $size = $sender->FileSize;
        $nameTemp = $sender->LocalName;
        $type = $sender->FileType;
        $oUsuarioLogged = Util::getSession("USUARIO");

        $result = Util::subirAvatarUsuario($name, $nameTemp, $type, $oUsuarioLogged->getUsuario() . "_");
        if (!Util::isNullOrEmpty($result)) {
            $this->litAvatarUsuario->ImageUrl = $result;
            $this->lblNombreBotonSubirImagen->Text = "Cambiar foto";
        } else {
            $this->lblMensaje->Text = "Error al subir foto";
        }
    }

    public function getListaComunas($sender, $param) {
        $this->ddlComuna->DataSource = array();
        $this->ddlComuna->DataBind();
        $idCiudad = $this->ddlCiudad->SelectedValue;
        $arrComunas = DDPEntity::getListaComunasPorCiudad($idCiudad);
        if (count($arrComunas) > 0) {
            $this->ddlComuna->DataSource = $arrComunas;
            $this->ddlComuna->DataValueField = "id";
            $this->ddlComuna->DataTextField = "nombre";
            $this->ddlComuna->DataBind();
            $this->ddlComuna->Items->insertAt(0, new TListItem("Seleccione", "0"));
        } else {
            $this->ddlComuna->Items->insertAt(0, new TListItem("Seleccione", "0"));
        }
    }

}

?>
